﻿// Open Source: MIT License (http://www.opensource.org/licenses/mit-license.php)
// Project: YoProgramo.NET (http://code.google.com/p/yoprogramo/)
// Autor: Fabian Figueredo (info@fabianfigueredo.com.ar)
// Blog: blog.yoprogramo.net

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace YoProgramo.Domain.Core.Interfaces
{
    public interface IHasAssignedId<IdT> {
        /// <summary>
        /// Enables developer to set the assigned ID of an object.  This is not part of 
        /// <see cref="DomainObject{IdT}" /> since most domain objects do not have assigned 
        /// IDs and since business rules will certainly vary as to what constitutes a valid,
        /// assigned ID for one object but not for another.
        /// </summary>
        void SetAssignedIdTo(IdT assignedId);
    }
}